Micro personal digital assistant with a compressed BIOS system

ABSTRACT

A personal digital assistant module with a local CPU, memory, and I/O interface has a host interface comprising a bus connected to the local CPU and a connector at a surface of the personal digital assistant for interfacing to a bus connector of a host general-purpose computer, providing direct bus communication between the personal digital assistant and the host general-purpose computer. In an embodiment, the personal digital assistant also has a means for storing a security code. The personal digital assistant according to the invention forms a host/satellite combination with a host computer having a docking bay, wherein upon docking a docking protocol controls access by the host to memory of the personal digital assistant based on one or more passwords provided by a user to the host. In another embodiment the personal digital assistant has a compressed BIOS chip, and in yet another embodiment also has an expansion port connected to the local CPU, and expansion peripheral devices may be connected and operated through the expansion port.

CROSS REFERENCE TO RELATED DOCUMENTS

The present application is a divisional of application Ser. No.09/785,574 which is a continuation of application Ser. No. 08/683,567which is a continuation-in-part of application Ser. Nos. 08/144,231 and08/019,592.

FIELD OF THE INVENTION

This invention is in the area of portable computers and pertains morespecifically to small portable computing devices known in the art aspersonal digital assistants, and to Basic Input/Output Systems (BIOS)for such devices.

BACKGROUND OF THE INVENTION

Personal Digital Assistant (PDA) units, as of the date of thisdisclosure, enjoy a position of hope in the computer marketplace. Somebelieve this approach, a small, relatively inexpensive, and eminentlyportable computer unit, having software specifically written for tasks auser might expect to perform while traveling, will provide eminentlyuseful and therefore salable computer products. Apple Computer, HewlettPackard, and several other well-known computer manufacturers have made aconsiderable investment at no small risk in such systems.

Given the new systems now introduced, and those coming, for what is nowknown about them, there are still a number of drawbacks and problems.For example:

-   -   1. The PDA systems introduced are relatively costly, with        starting prices ranging from several hundred dollars to two        thousand dollars and more. At such prices, rivaling current        pricing for desktop systems, the buying public may react        negatively. It is true that prices will fall with increased        manufacturing volume and competition, but the high end start may        well be rejected by potential users.    -   2. The systems being offered are still relatively bulky,        considering the limited range of tasks that may be accomplished.        Most are certainly too big to be conveniently carried in a        breast pocket. The Newton, manufactured by Apple Corporation,        weighs about a pound and is approximately the size of a VHS        video cassette.    -   3. A big drawback of the PDA systems being offered is the way        they transfer data between a user's desktop unit, or other host,        and the PDA. Known communication is by modem, by infrared        communication, and by serial connection. These all require        manipulation by a user, modulation on one or both ends of the        communication path, and the like, which can be time-consuming,        error-prone, and hardware extensive (expensive). Presently the        Newton offers a modem and/or LED communication as an option,        adding to the overall cost.    -   4. In known PDAs, software is typically recorded in ROM, so        updating applications can be difficult, and sometimes        impossible. This will be a problem because PDA users will not        want the PDA to have the same capabilities at all times. Typical        users will be people who travel and work while they travel.        These users require different functions for a trip to Taiwan        than for a trip to France, for example. What is needed is a        quick and convenient means to update and substitute software.    -   5. Another difficulty is in the fact that the data files a user        manipulates while traveling are typically data files also        resident in a home unit, herein called a host unit, such as the        user's office desktop machine or notebook or other portable        computer. It is very troublesome to have two or more sets of        critical data, with differences that one must remember to        correct at an appropriate time. This can cause unending grief if        files are not correctly updated. At best, current PDAs must use        a relatively slow compressed bus to download and upgrade files.        Typically this is done through a serial port, using a linking        application like Laplink™.    -   6. Yet another difficulty with small devices like digital        assistants is in providing embedded code routines, such as BIOS        routines, in a minimum read-only memory (ROM) real estate. There        is a considerable motivation to provide routines embedded in        ROM, because ROM is relatively inexpensive, and always a        requirement for minimum size and cost.

What is needed is a small and inexpensive PDA that has a range offeatures that eliminate the above-described risks and problems. This newunit needs to be smaller than those presently being introduced, such asabout credit-card size, or perhaps modeled on the PCMCIA type II or typeIII standard form factors. It should be inexpensive enough to producethat at least a minimum version could be sold in the roughly $100-$200range, so it will be a unit seen to be a relatively inexpensivenecessity. A PDA unit of this sort is the subject of the presentinvention, and is termed by the inventors a micro-PDA, or μPDA.

A very important feature of the μPDA in an aspect of the presentinvention is a direct parallel bus interface with a connector allowingthe unit to be docked by plugging it into a docking bay in a host unit.Moreover, when the μPDA is docked in the host, there needs to be a meansto effectively disable the CPU in the μPDA and to provide direct accessto both the μPDA software and data storage by the host CPU. This directaccess would provide immediate ability to communicate in the fastestavailable fashion between the μPDA and the host, and would alsofacilitate additional important features to be described below.

The μPDA also needs to have an optional compressed bus interface,including a connector separate from the host interface, so add-ondevices may be utilized, such as a FAX modem, cellular communication,printer, and so on.

An additional feature that could be optionally provided in anotheraspect of the invention is an interface at the host to allow a user toselect pre-arranged software mixes for loading to the μPDA. This featurecomprises a set of control routines operating in conjunction with thehost's display and input means, to allow the user to quickly selectapplications and perhaps data as well to be loaded to the μPDAsatellite, to configure the smaller, more portable unit for specificitineraries and purposes.

Another desirable feature is an ability to automatically update datafiles. In this aspect of the invention, with the μPDA docked, data onthe host, if carrying a later date and/or time stamp than the data onthe μPDA, would be automatically updated on the μPDA and vice-versa.When one returns from an excursion using the μPDA and docks thesatellite at the host, the host gains access, determines the location ofthe latest files, and accomplishes the update. This feature needs tohave some built-in user prompting to be most effective. It makes theμPDA a true satellite system.

In addition to the above, it is also desirable that the μPDA be servedwith code embedded in one or more ROM chips in a manner to allow morecode to be provided than the apparent capacity of the ROM.

SUMMARY OF THE INVENTION

In a preferred embodiment of the invention a personal digital assistantmodule is provided comprising an enclosure for enclosing and supportinginternal elements, a microcontroller within the enclosure for performingdigital operations to manage functions of the personal digital assistantmodule, and a memory means connected to the microcontroller by a memorybus structure for storing data and executable routines. There is a powersupply means within the enclosure for supplying power to functionalelements of the personal digital assistant module, a display meansoperable by the microcontroller and implemented on a surface of theenclosure, and input means connected to the microcontroller forproviding commands and data to the personal digital assistant module. Ahost interface means comprising a host interface bus structure, whichmay be configured as a PCMCIA bus interface, is connected to themicrocontroller and to a first portion of a host interface connector ata surface of the enclosure, and the host interface means is configuredto directly connect the microcontroller to a compatible bus structure ofa host computer.

In an embodiment, the personal digital assistant module has a BIOSembedded in ROM in a compressed fashion, along with an uncompressedportion for testing and initializing system memory on start-up, and anuncompressed compression utility routine configured for decompressingthe compressed BIOS portion.

In another embodiment the personal digital assistant module has anexpansion bus interface comprising an expansion bus structure connectedto the microcontroller and to a first portion of an expansion busconnector for connecting the microcontroller to a peripheral device. Awide variety of peripheral devices are provided for use with thepersonal digital assistant of the invention.

In another aspect, the personal digital assistant module also has anonvolatile storage device, such as an EEPROM connected to themicrocontroller and containing one or more codes unique to the personaldigital assistant, for uniquely identifying the personal digitalassistant to digital devices connected on the host interface.

In a preferred embodiment, the display and input means for the personaldigital assistant are configured as an overlaid touch screen and LCDdisplay on a surface of the outer case of the personal digitalassistant. A pointer device implemented as a thumbwheel in oneembodiment and as a pressure sensitive pad in another is provided aspart of the input capability.

The personal digital assistant module forms a unique combination with ageneral-purpose computer host having the personal digital assistant as asatellite unit. The host in this instance has a docking bay especiallyconfigured to dock the personal digital assistant, making a direct busconnection between the local CPU of the personal digital assistant andthe CPU of the host. The host may be a desktop unit, a notebookcomputer, or a smaller portable like a palmtop computer. Thiscombination provides power and convenience not before available.

Many other digital devices are also provided according to variousaspects of the invention, such as modems, scanners, data acquisitionperipherals, cellular phones, and a software vending machine, and all ofthese devices may be appended to the personal digital assistant by theexpansion bus interface or, in many cases, by the host interface.

The personal digital assistant provided according to embodiments of thepresent invention is a unit more compact than conventional PDAs. Itrepresents a new dimension in computer application and applicability, ina form promising to be eminently usable by and useful to almosteveryone; and at a price easily affordable. It solves the communicationproblem intrinsic to personal digital assistants relative to larger andmore powerful computers, with a unit that fits into a user's breastpocket, and at a very low price.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is an isometric view of a μPDA according to an embodiment of thepresent invention.

FIG. 1B is a plan view of the μPDA of FIG. 1A.

FIG. 2 is a cross-sectional view of the μPDA of FIGS. 1A and 1B.

FIG. 3 is a block diagram of the μPDA of FIG. 1A and some peripheralelements.

FIG. 4 is a more detailed plan view of the μPDA of FIG. 1A showing inparticular an LCD display and touch screen user interface in an aspectof the present invention.

FIG. 5 is an isometric view of a μPDA and a host notebook computer in anaspect of the present invention, with the μPDA about to be docked in adocking bay of the notebook computer.

FIG. 6 is a block diagram of a μPDA docked in a docking bay of a hostcomputer according to an embodiment of the present invention.

FIG. 7 is a logic flow diagram of the steps in docking a μPDA in a hostcomputer according to an embodiment of the present invention.

FIG. 8 is an isometric illustration of a μPDA software vending machinein an aspect of the present invention.

FIG. 9 is a top plan view of a μPDA enhanced user interface according toan embodiment of the present invention.

FIG. 10 is a top plan view of a μPDA with a microphone in an embodimentof the present invention.

FIG. 11 is an isometric drawing of a μPDA docked in a dedicated cellularor cordless telephone according to an embodiment of the presentinvention.

FIG. 12 is a plan view of a μPDA with a speaker and pager interfaceaccording to an embodiment of the present invention.

FIG. 13 is a plan view of a μPDA with an infrared communicationinterface according to an embodiment of the present invention.

FIG. 14 is a plan view of a μPDA with a scanner attachment according toan embodiment of the present invention.

FIG. 15 is a plan view of a μPDA with a fax-modem attached according toan embodiment of the present invention.

FIG. 16 is a plan view of a μPDA with a printer adapter interfaceaccording to an embodiment of the present invention.

FIG. 17 is an isometric drawing of a μPDA docked in a barcode readerproviding a data acquisition peripheral according to an embodiment ofthe present invention.

FIG. 18 is an isometric view of a μPDA with a solar charger according toan embodiment of the present invention.

FIG. 19 is a plan view of four μPDAs interfaced to a dedicated networkconsole providing inter-PDA communication according to an embodiment ofthe present invention.

FIG. 20 is an isometric view of a μPDA according to the inventionconnected by the expansion port to a standard-sized keyboard.

FIG. 21 is a diagrammatical representation of a partially compressedBIOS according to an embodiment of the invention.

FIG. 22 is a flow chart showing the operation of a computer from startupfollowing a BIOS routine according to the present invention.

FIG. 23 is a diagrammatical representation of a token decompressionscheme according to an embodiment of the invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1A is an isometric view of a μPDA 10 according to an embodiment ofthe present invention. In this embodiment the unit is modeled on thePCMCIA standard Type II form factor, having a height D1 of about 5 mm.Body 12 is described in further detail below, and has a female portion14 of a connector recessed at one end for engaging a mating male portionof the connector in a host computer, connecting the μPDA internalcircuitry directly with a host internal bus. The host unit may be anotebook computer having a docking bay for the μPDA. Docking bays may beprovided in desktop and other types of computers, and even in otherkinds of digital equipment, several examples of which are describedbelow.

Still referring to FIG. 1A, in this embodiment there is a combinationI/O interface 16 implemented on one side of the μPDA, comprising adisplay overlaid with a touch-sensitive planar structure providingsoftkey operation in conjunction with interactive control routinesoperable on the μPDA in a stand-alone mode.

Although not shown in FIG. 1A, there may also be guides implementedalong the sides of the case of the device for guiding the module in andout of a docking bay in a host computer unit. There may also be one ormore mechanical features facilitating engagement and disengagement ofthe module in a docking bay.

FIG. 1B is a top plan view of the μPDA of FIG. 1A, showing a thumbwheel18 implemented in one corner of the μPDA. The thumbwheel in thisembodiment is an input device capable of providing input with bothamplitude and directional characteristics, and in some cases ratecharacteristics as well. The thumbwheel has many uses in combinationwith the μPDA and I/O interface 16. One such use is controlled scrollingof icons, characters, menus, and the like on the display of the device.The thumbwheel provides many of the functions of a pointer device.

In this embodiment of the μPDA a second external connector portion 20 isprovided. This connector portion is for engaging peripheral devices aspart of an expansion bus interface.

FIG. 2 is a simplified cross-sectional view of a means for constructinga μPDA according to the present invention in a Type II PCMCIA, or otherrelatively small package. ICs 34 are encapsulated in a conformalmaterial 36, and interconnection is accomplished by traces on a flexiblepolymer film 32 shown as overlaying the encapsulated structure. In thisstructure the ICs are not packaged in the conventional manner havingsolder leads for assembly to a printed circuit board. Rather,connections are made directly between the solder pads on the chip andthe traces on the Kapton film. Also there is no intention to relate ICsindicated by element No. 34 with specific functional ICs in a μPDA. Thiscross-section is illustrative of a method of construction only.

In this compact construction there may also be traces on the side offilm 32 away from the interconnections for the CPU and memory forconnection to other elements, such as display 25 and touch-sensitivescreen 27.

LCD display 25 is implemented on one side of the μPDA, andtouch-sensitive interface 27 is provided overlaying at least a portionof the LCD display. A metal casing 38, or other suitable material orcombinations of material, surrounds the internal components and conformsto Type II PCMCIA form factors. This simplified cross-sectionillustrates some of the principles of construction that can allow theneeded components to be inexpensively fitted into the small form factorneeded. In another embodiment the μPDA is implemented in the form factorof a type III (10 mm thick) PCMCIA unit, using relatively conventionaltechnology, such as PCB technology, rather than the encapsulatedconstruction described immediately above. Various other constructions,form factors, and combinations are possible, as well.

FIG. 3 is a simplified electrical block diagram of the μPDA of FIGS. 1A,1B and 2. A unique microcontroller 11 acts as the CPU of the μPDA in thestand-alone mode, that is, when the μPDA is not docked in a host unit.When the μPDA is docked in a host computer, microcontroller 11 acts as aslave unit, granting bus control to the CPU of the host. In docked mode,the CPU of the host thus gains control of the memory contents of theμPDA, subject in most cases to security procedures which are describedbelow. Thus the host computer can transfer data and software into andout of a docked μPDA memory. In other embodiments many other cooperativeoperating modes may be accomplished between the two CPUs and accessiblememory devices.

Memory 13 is preferably a nonvolatile device from 1 to 2 megabytes inthis embodiment, and both control routines for applications and datafiles are stored in this memory. Memory 13 may be flash memory, CMOSROM, CMOS RAM with battery, or a combination, with the software storedin ROM and the data in the flash memory. The memory device is interfacedto microcontroller 11 via a dedicated bus structure 17, andmicroprocessor 11 is configured to drive memory bus 17.

A battery 15 is the power source in the stand-alone mode, and may berecharged in one or more of several ways. The power traces are not shownin FIG. 3, but extend to all of the powered devices in the μPDA module.When the unit is docked in the host, the host power source may beconnected to pins through the host interface to recharge the battery.Alternatively, an attached means such as a solar panel may be configuredto charge the battery and/or provide power to the μPDA. A solar panelfor power is described elsewhere in this disclosure. Also the batterymay be easily removed for periodic replacement.

Host bus connector 14 is a part of a host interface which comprises abus structure 26 for providing connection to the host in docked mode, asdescribed above. In a preferred embodiment, the host interface isaccording to PCMCIA Type II, Rev. 3 standard, which is capable ofcommunication either in PCMCIA mode or in a mode similar to PCI mode.PCI mode refers to a high-speed intermediate bus protocol beingdeveloped by Intel Corporation, expected to become a standard busarchitecture and protocol in the industry. The physical interface at thehost in this embodiment is a slot-like docking bay, as is typical ofknow docking bays for PCMCIA devices. This docking bay may beimplemented as a docking box, a built-in unit like a floppy-drive unit,or it may take some other form.

Connector portion 20 is a part of the expansion bus interface describedabove, comprising a dedicated bus structure 40 connected tomicrocontroller 11. This interface can be implemented in a number ofdifferent ways. The purpose of the optional expansion bus interface isto connect to optional peripheral devices, such as a printer, a FAXmodem, a host cellular phone, and others. The expansion bus interface isnot an essential feature in a minimum embodiment of the presentinvention, but provides vastly enhanced functionality in manyembodiments.

The expansion interface can take any one of several forms. A preferredform is an extended enhanced parallel port and protocol based on aninvention by the present inventors disclosed in a co-pending patentapplication. Another form is an indexed I/O port having 8-bit addressand 8-bit data capability. The requirement of the expansion port is thatthe connection and communication protocol be compatible with expansiondevices, such as telephone modems, fax modems, scanners, and the like.Many other configurations are possible.

Optional equipment such as devices listed in box 19 may be connected foruse with the μPDA through the expansion bus. Selected ones of suchdevices may also be built in to the μPDA in various embodiments,providing variations of applicability. In the former case, connection isthrough path 21 and the expansion bus interface via connector portion20. In the built-in case, connection is in the interconnection traces ofthe μPDA as indicated by path 23.

I/O interface 16 (also FIG. 1B) is for viewing μPDA application-relateddata and for touch-sensitive input via softkeys. By softkeys is meantassignment by software of various functions to specific touch sensitivescreen areas, which act as input keys. Labels in I/O interface 16identify functionality of the touch-sensitive areas in various operatingmodes according to installed machine control routines. LCD display 25and the touch-sensitive area 27 together form the combination I/Ointerface 16 described also above.

In some embodiments of the present invention, data and program securityis provided comprising an Electrically Erasable Programmable Read OnlyMemory (EEPROM) 31, which is connected by dedicated communication linesto microcontroller 11. EEPROM 31 holds one or more codes installed atthe point of manufacturing to provide security for information transferbetween a host and a μPDA. The purpose is to control access by a host tothe memory contents of a μPDA, so each μPDA may be configured to anindividual. To accomplish this, docking and bus mastering machinecontrol routines are initiated at the point of docking, and thissecurity process is described in more detail below. In otherembodiments, security codes may be provided by a Read Only Memory (ROM)chip or other permanent or semi-permanent memory source.

FIG. 4 is a plan view similar to FIG. 1B, of a μPDA, showing inparticular I/O interface 16. The size and location of I/O interface 16may vary, but in general occupies a major portion of one of the sides ofthe module. In one embodiment I/O interface 16 comprises an LCD displaywith a resolution of 256 by 144 pixels in a screen size that displays 32by 12 characters. Each character in this embodiment is displayed in anarea eight pixels wide and twelve pixels high. In another embodiment,the pixel resolution is 320 by 200, which corresponds to 40 by 16characters.

The touch-sensitive areas of the touch-sensitive screen correspond tothe character areas of the display. By touching an area with a finger orstylus, data can be entered quite quickly and with minimal CPU demand.

At one comer, thumbwheel 18 provides a two-directional means ofcontrolling the configuration of the display according to installedcontrol routines. A menu 70 is configured at one side to represent thecurrent status of any application in progress and to provide appropriateuser menu selections. In a preferred embodiment input from thumbwheel 18is used for scrolling through menu 70, and active areas may be indicatedby a cursor. A user makes a menu selection by pressing the appropriatetouch-sensitive area. A specific input may be provided to cause the menuarea to be displayed on either side of the display according to a user'spreference.

Specific characters are displayed in this embodiment in a region 74,with each character area associated with a touch-sensitive input area.As region 70 dedicated to selectable characters is much too small todisplay all characters of a standard keyboard, input from thumbwheel 18allows a user to pan region 74 displaying an entire virtual standardkeyboard. Movement of thumbwheel 18 in one direction pans the characterregion horizontally, and movement in the other direction pans thecharacter region vertically. When an end is reached the window pans ontothe virtual keyboard from the other end. In this maimer, a user mayquickly pan the character window to display an entire standard keyboard,and make selections with a finger or a stylus. Of course, it is notrequired that a virtual keyboard be laid out for access in the format ofa standard keyboard. Characters and punctuation, etc., could just assimply be displayed in a single strip along a region of the display, andscrolled by input from the thumbwheel or other pointer-type inputdevice.

In this embodiment, to avoid delays caused by panning, if the thumbwheelis rotated quickly the character window jumps rather than scrolling tospeed up the interface. In addition, menu 70 may optionally provide fora character display in different fonts and sizes, although a single fontis preferred to minimize memory demand. It will be apparent to thosewith skill in the art that there are many alternatives for characterselection and display, and many ways thumbwheel 18 may be configured toallow for scrolling and panning.

A document window 72 is provided in this embodiment at the top or bottomof I/O interface 16. A cursor locates the active position within thedocument for editing purposes. Menu 70 provides selection of availablefonts, and input by thumbwheel 18 controls cursor movement over thedocument. As a document will in almost all cases be much larger than thedisplay capability of region 72, it is necessary to pan the documentwindow in essentially the same manner as the keyboard window is panned.For example, rotating thumbwheel 18 in one direction may displayhorizontal strips of a document, while rotating the thumbwheel in theopposite direction moves the window vertically strips of the samedocument.

A soft key or optional hard key may be configured to switch between thedocument and keyboard window, and the same or another key may beconfigured to switch between scrolling left or right, up or down,document or keyboard. A switch key may be used to change the thumbwheelmode of operation. A switch key may also be used in combination with afloating pointer to select characters and menu items. In thisembodiment, the user can keep his or her hands relatively stationary onjust the thumbwheel and the switch key, making all possible selections.Use of a switch key in combination with a floating pointer facilitatesthe use of small fonts. A switch key may also be incorporated as anadditional hard key in a convenient location on the case 12.

It will be obvious to a person skilled in the art than there arenumerous ways to combine menu selections, switching keys and I/Oconfigurations to provide a user-friendly user interface. A furtherembodiment of the present invention provides an I/O set-up applicationwherein a user may completely customize features of I/O area displays.

There are other sorts of mechanical interfaces which may be used toprovide pointer-style input in different embodiments of the invention asalternatives to the thumbwheel disclosed. One is a four-wayforce-sensitive mouse button and a selector button, which may be locatedat opposite ends of case 12 below I/O interface 16. Each button isdesigned to be operated by one finger. The four-way force-sensitivemouse button can provide menu scrolling of a cursor and panning and/orindexing of keyboard and document windows, while the selector button isused to select and edit according to position of a cursor. Thisconfiguration minimizes hand movement and keeps the I/O area clear forviewing.

Implementation of thumbwheels, pressure-sensitive switches and buttons,and the like, are known in the art, including the translation ofmechanical motion and pressure to electrical signals and provision ofsuch signals to a microcontroller. For this reason, details of suchinterfaces are not provided in this disclosure. Combinations of suchinputs with displays and input areas may, however, be considered asinventive.

FIG. 5 is an isometric drawing of a μPDA 10 in position to be docked ina notebook computer 172 via a Type II PCMCIA docking port 105 accordingto an embodiment of the present invention. As further described below,once the μPDA is docked, it is activated and a procedure is initiatedwith the host computer to manage communication and verify memory accessrights (security).

Access rights are considered important by the inventors for a number ofreasons. Firstly, through the expedient of one or more specific codes,unique to each μPDA, a user may protect files stored in his module fromaccess by unauthorized persons. The code can be used both to controlaccess to data and files via I/O interface 16, and also through the hostbus interface, so data and files may be secure from access by anunauthorized host system.

In the former case, when a μPDA is powered up, an application routinecan query the user for an access code to be entered at I/O interface 16FIG. 4). If the code is not entered properly, access is denied, andpower goes off. Codes for the purpose are stored in EEPROM 31 (FIG. 3),or in whatever ROM device may be devoted to the purpose. In someembodiments, the code may by mask-programmed at manufacture, so it isnot alterable. In others, the code may be accessible and changeable byspecial procedures in the field.

In the case of host communication, it is possible that a portable ordesktop computer, or some other device, may have a docking portphysically configured to receive a μPDA, yet not be configured tocommunicate with the μPDA. This certainly might be the case where theμPDA is in the PCMCIA form. For purposes of disclosure and description,this specification terms such a unit a generic host. If the unit isconfigured to communicate with a μPDA it is an enabled host. If a hostis configured for full access to a particular μPDA, it is a dedicatedhost.

If a docking unit is a generic host, there will be no communicationunless the person presenting the μPDA provides the control routines tothe host. This may be done for a generic host such as by transfer from afloppy disk, from a separate memory card through the docking port, or,in some embodiments, the communication software may be resident inmemory 13 (FIG. 3) of a docked μPDA, transferable to the host tofacilitate further communication.

If the docking unit is in fact an enabled host, or is configured afterdocking to be an enabled host, the stored code or codes in EEPROM 31 (orother storage unit) may be used to verify authorization for data andprogram transfer between the host and a μPDA. In one embodiment thisprocedure is in the following order: First, when one docks a μPDA in acompatible docking port, certain pin connections convey to both the μPDAmicrocontroller and to the host CPU that the module is docked. Assumingan enabled host, the fact of docking commences an initializationprotocol on both systems.

In most embodiments, if the docking unit is a non-host, that is, it isnot capable of communication with the docked module, nothing happens,and the user may simply eject the docked module. If the computer is anenabled host, an application is started to configure host access to theμPDA's data files through the μPDA microcontroller. A user interface,described more fully below for a particular embodiment, is displayed onthe host monitor 104 (FIG. 5). The host interface menu, as well as otherapplication menus, may be formatted in part as a display of the μPDA I/Ointerface 16 as seen in FIG. 4 and described in accompanying text. Insome embodiments, the docked μPDA can be operated in situ bymanipulating the input areas of the μPDA displayed on the host's screen.

If the host is not a home unit for the docked module, that is, the hostdoes not have matching embedded ID codes to those stored in the dockedmodule, a visitor protocol is initiated. In this event, a visitor menuis displayed on host display 104 for further input, such as passwordqueries for selections of limited data access areas in the dockedmodule. In this case, too, a user may gain full access to the dockedmodule's memory registers by entering the proper password(s).

If the host is a fully compatible host home unit, full access may beimmediately granted to the host to access memory contents of the dockedmodule, including program areas; and both data and programs may beexchanged.

In any case, when the μPDA is ejected or otherwise removed from thedocking port, the on-board module microcontroller again gains fullcontrol of the internal μPDA bus structures.

FIG. 6 is a simplified block diagram of a μPDA docked in a hostcomputer, and FIG. 7 is a basic logic flow diagram of the steps involvedin docking a μPDA in a host computer 66 according to an embodiment ofthe present invention. Host computer 66 is represented in a mostlygeneric form, having a host CPU 24, and input device 60, such as akeyboard, a mass storage device 28, such as a hard disk drive, andsystem RAM 62. It will be apparent to those with skill in the art thatmany hosts may have a much more sophisticated architecture, and thearchitecture shown is meant to be illustrative.

When a μPDA unit is docked, connector 14′ in FIG. 6 comprises portion 14shown in FIGS. 1B and 3 and a mating connector portion for engagingportion 14 in port 105 (FIG. 5). The engagement of the separate portionsof the connector cause bus 26 in the μPDA and bus 26′ in the host tobecome directly connected. There is then a direct bus path betweenmicrocontroller 11 and host CPU 24 (FIG. 6).

As previously described there is a pin configuration (not shown) inconnector 14 dedicated to signaling that a module is docked. In FIG. 7,step 42 represents insertion of a μPDA module into the docking port. Atstep 44 the signaling pin configuration signifies physical docking isaccomplished. At step 46 host interface bus 26 is activated, includingthe mated host bus 26′ in the host.

At step 48 (FIG. 7) microcontroller 11 in the μPDA starts apreprogrammed POST procedure. Microcontroller 11 in this embodiment hasa page of RAM 68 implemented on the microcontroller chip. In otherembodiments RAM may be used at other locations. At step 50, the POSTroutine loads a bootstrap program to RAM 68, which includes a code orcodes for security matching. This code or codes comprise, for example, aserial number.

At step 54 the bootstrap program begins to execute in microcontroller11, and at step 56 the microcontroller looks for a password from thehost on host interface bus 26 (FIG. 6).

The fact of docking, assuming an enabled or dedicated host, also causesa communication routine, which may be accessed from, for example, massstorage device 28 at the host, to display a user interface on monitorscreen 104 of the host unit, as partly described above. It is thiscommunication program that makes a generic host an enabled host.

Assuming an enabled, but not dedicated, host, the user interface willquery a user for input of one or more passwords, after successful entryof which the host will pass the input to microcontroller 11 forcomparison with the serial number and perhaps other codes accessed fromEEPROM 31 in the bootstrap of the μPDA.

According to the codes passed from the host to the docked module,microcontroller 11 will allow full access to memory 31 at function 52,FIG. 7, for the host CPU, or limited access at some level at function58, defined by received codes (or no matching code at all).

The access protocols and procedures allowing partial or direct access toμPDA memory 13 are relatively well known procedures in the art, such asbus mastering techniques, and need not be reproduced in detail here. Inaddition to simple comparison of codes, there are other techniques thatmay be incorporated to improve the integrity of security in thecommunication between a μPDA and a host. For example, within thelimitation of storage capacity of the EEPROM or other nonvolatilesource, executable code might also be uploaded to onboard RAM 68, orcode keys to be used with executable code from other sources, orrelatively simple maps re-allocating memory positions and the like, soeach μPDA may be a truly unique device.

There are additional unique features provided in one aspect of theinvention as part of the communication routines introduced above. Onesuch feature is automatic updating and cross-referencing of existingfiles and new files in both computers, under control of the host system,with the host having direct bus access to all memory systems.Auto-updating has various options, such as auto-updating by clocksignature only, flagging new files before transfer, and an editing meansthat allows the user to review both older and newer versions of filesbefore discarding the older in favor of the newer. This automatic orsemiautomatic updating of files between the satellite and the hostaddresses a long-standing problem. The updating routines may alsoincorporate a backup option to save older files.

Another useful feature in host/μPDA communication is a means for a userto select and compose a mix of executable program files for downloadingto a μPDA, either replacing or supplementing those executable routinesalready resident. A user can have several different program lists fordownloading as a batch, conveniently configuring the applicability of aμPDA among a wide variety of expected work environments.

Such applications as databases, spreadsheets, documents, travel filessuch as currency converters, faxing and other communications programs,time clocks, address and telephone records, and the like, may comprisecustomized lists of user-preferred applications.

In another embodiment, an undocked μPDA can transfer data via theoptional expansion bus 40 (FIG. 3) directly to a host. In the specialcase of a μPDA user without access to a PCMCIA interface on his host(notebook or desk-top) computer, he or she can connect to a host via anauxiliary port on the host, such as a serial port, via the expansion businterface. In this case, the μPDA still requests password(s) from thehost, and controls access to its on-board memory according to thepassword(s) received.

The optional expansion interface may also be used in some embodimentswhile a μPDA is mastered by a host, wherein the host may effectivelysend data through the bus structures of the μPDA.

Additional Aspects and Features

Software Vending Machine:

In a further aspect of the invention, a Software Vending Machine with avery large electronic storage capacity is provided, wherein a μPDA usermay dock a module and purchase and download software routines compatiblewith the μPDA environment.

FIG. 8 is an isometric view of such a vending machine 61 having adocking bay 63 for a μPDA, a credit card slot 65, and a paper money slot67. A display 69 provides a user interface for reviewing and purchasingsoftware from the vending machine, along with selector buttons such asbutton 71 along the sides of the display. In an alternative embodimentthe display may also have a touch screen, and may, in some embodiments,emulate the NXPDA I/O area on a larger scale.

In operation, a user may, in this embodiment, review software for salesimply by docking his μPDA unit in the vending machine and selectingfrom a menu on display 69. The menu may allow the user to browse allavailable applications, or list new applications since entered dates.The user can select certain applications, try them out, at least insimulation, and then select applications to purchase.

The vending machine, once all the requirements are met, such as properidentification and payment, copies the selected application(s) to thememory of the μPDA, or, alternatively, to a floppy disk provided byeither the user or the vending machine. In this case there is also afloppy disk drive 73 in the vending machine and a port 75 for dispensingformatted floppies for a customer to use in the disk drive. This mode isuseful for the instances where a user's μPDA is loaded beyond capacityto receive the desired software, or the user simply wishes to configurethe software mix himself from his or her own host computer.

There may also be provided a backup option so a user may instruct thevending machine to read and copy all or a selection of his files to oneor more floppy disks before installing new files or data.

As described above, each user's μPDA includes an EEPROM or other storageuniquely identifying the μPDA by a serial number or other code(s), sothe vending machine may be configured in this embodiment to provide thesoftware in one of several modes.

A user may buy for a very nominal price a demo copy of an application,which does not provide full capability of the application, but will givethe user an opportunity to test and become familiar with an applicationbefore purchase. Also, the user may buy a version of the sameapplication, configured to the ID key of the μPDA to which it is loaded,and operable only on that μPDA. In another embodiment, the software istransferable between a family of keyed μPDAs, or has the ability to“unlock” only a limited number of times. In these cases, theapplications would be sold at a lesser price than an unlocked version.The unlocked version works on any μPDA and/or host/μPDA system. Thehigher price for the unlocked version compensates for the likelihood ofunauthorized sharing of the vended applications.

The vending machine could also offer a keyed version, customized tooperate only on the μPDA docked in the software vending machine, or upona family of μPDAs. This keyed version is possible because of theindividual and unique nature of each μPDA, which has, at a minimum, aunique serial number, and may also have other security programming, asdescribed above, which allows a vending machine to prepare and downloada customized copy of an application that will operate only on theparticular module for which it is purchased.

There are a number of different means by which unique correspondencemight be accomplished, as will be apparent to those with skill in theart. A standard version stored in the memory facility of a vendingmachine might be recompiled, for example, on downloading, using a uniquecode from the docked or identified μPDA as a key in the compilation, soonly the specific μPDA may run the program by using the same unique keyto sequence the instructions while running. The key for scrambling orotherwise customizing an application might also comprise other codesand/or executable code sequences stored uniquely in a μPDA.

In yet another aspect related to the vending machine, there is a printeroutlet 77 which prints a hardcopy manual for the user. It is, of course,not necessary that the software vended be specific to the M-PDA.Applications may also be vended for other kinds of machines, andtransported in the memory of the μPDA, or by floppy disk, etc. In thisembodiment a non-μPDA user can acquire a wide assortment of software.

The software vending machine may also serve as an optional informationaldisplay center in such locations as airports, train stations, conventioncenters, and hotels. Upon inserting a μPDA a user may interface directlyand upload current information including, but not limited to, local,national, and world news; stock quotes and financial reports; weather;transportation schedules; road maps; language translators; currencyexchange applications; E-mail and other direct on-line services.

A customized vending machine could be tailored to business travelers andallow fast access to pertinent information, allowing the user todownload files to send via E-mail. In another aspect of the invention,the vending machines are linked to each other allowing users to sendmessages to associates traveling through locations of associated vendingmachines. Such dedicated μPDA E-mail is immediately downloaded to aspecific μPDA as it is docked. The sender may have the associate's μPDAunique encoded key as identification, or some other dedicatedidentifying means for E-mail.

In another embodiment, as each business associate arrives at an airport,he or she may prompt the custom vending machine in that location via anoptional installed infrared interface (not shown) in their μPDA. Thecustom vending machine, also equipped for infrared communication,receives the signal and sends/or receives any messages that are waiting.

Enhanced Display:

FIG. 9 is a plan view of an enhanced I/O interface unit 79 according toan aspect of the present invention. Interface unit 79, with about a5-inch diagonal measurement, comprises a combination LCD display atleast partially overlaid by a touch-sensitive input screen, providing anI/O area 80 in much the same manner as in a μPDA. Four docking bays 81,83, 85, and 87 are provided in the left and right edges of interfaceunit 79 in this embodiment, and are configured for PCMCIA type IImodules. One of these bays may be used for docking a μPDA according tothe present invention, and the other three to provide a larger CPU,additional memory, battery power, peripheral devices such as modems, andthe like by docking functional PCMCIA modules.

Interface unit 79 is a framework for assembling a specialty computerthrough docking PCMCIA units, including a μPDA according to the presentinvention. In other embodiments where the μPDA assumes other formfactors, the docking bays may be configured accordingly.

A docked μPDA in this embodiment is configured to produce its I/Odisplay on I/O area 80. The thumbwheel on the M-PDA is accessible whiledocked and acts as described above in the stand-alone mode in this case.In another aspect, the enhanced display has a re-configured output thatenables the user to manipulate the data from the touch-screen aloneand/or additional hardware selector buttons and/or a standard keyboardattached to the enhanced display via a dedicated bus port, or eventhrough the expansion port of a docked μPDA. In a further embodiment theenhanced display has a dedicated mouse port and/or a dedicatedthumbwheel.

In yet another embodiment, interface unit 79 has an inexpensive,conventional, replaceable battery and/or a rechargeable battery. Also,in another aspect, interface unit 79 may dock two or more individualμPDAs and cross-reference data files between them according to controlroutines that can manipulate mutually unlocked files. Further still,interface unit 79 may be placed and structurally supported for easyviewing on a dedicated standard or smaller-sized keyboard, connecting tothe keyboard as an input device. The keyboard would then automaticallyserve as the input device.

Interface unit 79 for a μPDA is small and compact enough to slip into apocket book or briefcase, providing a very portable, yet very powerful,computer.

Microphone/Voicenotes:

FIG. 10 is a plan view of a μPDA 110 with an I/O interface 116, anexpansion port 120, and a host interface connector 114. μPDA 110 has allthe features previously described and additionally a microphone 88. Inthis embodiment, control routines in the μPDA use a linear predictivecoding (LPC) approach to convert analog input from the microphone to adigital voice recording. This approach uses a minimum of memory, butstill is capable of reproducing audio input like the human voice withinrecognizable limits.

In an alternative embodiment, for better quality voice recording, atwo-step integrator may be used in order to separate the analog signaland synthesize a closer digital representation.

With a μPDA so configured, a user's voice notes can be recorded andlater uploaded to a host for processing. In future embodiments thedigital signals may be converted to text or sent as voicemail on anetwork. In yet another embodiment, the microphone is integrated with aspeaker for editing purposes.

Cellular Telephone Interface:

FIG. 11 is an isometric view of a μPDA 10 docked in a dedicated cellulartelephone 45 according to an embodiment of the present invention.Telephone 45 has a docking port 49 for a μPDA according to theinvention. In this embodiment, port 49 is on one side of telephone 45,and there is a window 51 to provide access to I/O interface 16 of theμPDA after it is docked. With the μPDA docked, all of the software andmemory of the μPDA is available to the telephone and a user may operatethe phone by I/O interface 16.

In this aspect of the invention, unique control routines and displayconfigurations are provided to enhance use of the cellular phone. Forexample, all of the user's collection of phone numbers, associatedcredit card numbers, access codes, etc. are readily available and may bequickly and conveniently accessed and used. In one aspect, a simpleinput displays alphabet letters to select, and once a letter isselected, a partial list of parties that might be called is displayed.One may scroll through the list by touch input or by use of thethumbwheel of the μPDA and select a highlighted entry. It is notrequired that the telephone numbers be displayed.

Once a party to be called is selected, the μPDA dials the call,including necessary credit card information stored in the memory of theμPDA for this purpose.

In a further embodiment, the calls are timed and time-stamped and acomprehensive log, with areas for notes during and after, is recorded.

In another embodiment, conversations are digitally recorded and filedfor processing later. A future embodiment may include a voicecompression program at a host or within cellular phone 45. Compressedvoice files, such as, for example, messages to be distributed in avoicemail system, may be downloaded into the μPDA or carried in a largermemory format inside the cellular telephone. The μPDA can then send thefiles via a host or dedicated modem attached at connector portion 20 tothe optional expansion bus 40 (FIG. 6).

The cellular telephone may, in this particular embodiment, have a busport for digital transmission. In this case, the compression algorithmalong with voice system control routines are also established at thereceiving end of the transmission to uncompress the signal anddistribute individual messages.

In a further embodiment, voice messages may be sent in a wireless formatfrom the cellular telephone in uncompressed digital synthesized form,distributing them automatically to dedicated receiving hosts, orsemi-automatically by manually prompting individual voicemail systemsbefore each individual message. In a further aspect of wirelesstransmission, a microphone/voicenote μPDA as in FIG. 10 may sendpreviously stored voicenotes after docking in a cellular telephoneinterface.

In Europe and Asia a phone system is in use known as CT2, operating on adigital standard and comprising local substations where a party with acompatible cellular phone may access the station simply by being withinthe active area of the substation. In one aspect of the presentinvention, a CT2 telephone is provided with a docking bay for a μPDA,and configured to work with the μPDA. In yet another aspect of theinvention, in the CT2 telephone system, and applicable to other digitaltelephone systems, a compression utility as disclosed above is providedto digitally compress messages before transmission on the CT2 telephonesystem.

It is roughly estimated that a dedicated compression algorithm maycompress ten minutes of voice messages into one minute using theexisting CT2 technology. This would save on telephone use chargessignificantly. In this aspect, there needs be a compatible decompressionfacility at the receiving station, preferably incorporated into astandard μPDA voicemail system for CT2 or other digital transmissions.

In a further embodiment, control routines are provided to enable themicrophone/voicenote μPDA as illustrated in FIG. 10 to carry digitalvoicenotes, either compressed or uncompressed. When docked in aCT2-compatible μPDA cellular telephone, the μPDA in this embodiment cantransmit the digital voicenotes in compressed form.

Speaker/Pager:

FIG. 12 is a plan view of a μPDA 210 with a microphone/speaker area 90and a pager interface 92 according to an embodiment of the presentinvention. This μPDA has the ability to act as a standard pager, pickingup pager signals with installed pager interface 92 and alerting a userthrough microphone/speaker 90. Once the signals are received, μPDA 210can be docked in a compatible cellular telephone as illustrated in FIG.11 and the μPDA will automatically dial the caller's telephone number.All other aspects are as described in the docked mode in the cellulartelephone.

In another embodiment, the speaker/pager μPDA can be prompted togenerate DTMF tones. The DTMF tones are generated from a caller'stelephone number.

The speaker/pager μPDA can store pager requests in its onboard memory.It can also display all pager requests including time and date stamps,identification of the caller, if known, and other related information,on I/O interface 216. In this particular embodiment, a user can receivea page, respond immediately in digital voicenotes on the μPDA viaspeaker/microphone 90, and then send the response from a dedicatedμPDA-compatible cellular telephone or conventional telephone.

Wireless Infrared Interface:

FIG. 13 is a plan view of a μPDA 310 with an IR interface 94 accordingto an embodiment of the present invention. In this embodiment the μPDAmay communicate with an array of conventional appliances in the home oroffice for providing remote control. Unique signals for the appliancesare programmed into the μPDA in a learning/receive mode, and filed withuser password protection. Once a correct password in entered, anicon-based menu is displayed on I/O area 316 in a user-friendly format.A master routine first queries a user for which device to access. Forexample, in a residential application, icons are displayed for suchthings as overhead garage doors, security systems, automatic gates,VCRs, television, and stereos.

In another aspect of the invention, a receiving station such as a hostcomputer or peripheral interface has IR capabilities to communicate datadirectly from a nearby μPDA with an infrared interface. In a furtherembodiment the μPDA may interface in a cellular network and act as awireless modem.

Peripherals

A μPDA may serve as the platform for various peripheral attachments viaexpansion port 20 (FIG. 1B and others). Upon attachment to a peripheral,a dedicated pin or pins within expansion port 20 signal microcontroller11, and a peripheral boot-strap application is executed. Interfacingcontrol routines, which may reside in the peripheral or in the memory ofthe μPDA, are then executed, and the μPDA I/O interface displays therelated menu-driven options after the linking is complete.

Scanner:

FIG. 14 is a plan view of a μPDA 10 with a scanner attachment 55according to an embodiment of the present invention. The scannerattachment is assembled to the μPDA, making electrical connection viaexpansion port 20. In this embodiment the physical interface of thescanner is shaped to securely attach to the μPDA. Scanner attachment 55has a roller wheel 57 or other translation sensor, which interfaces withwheel 18 of the μPDA, providing translation sensing in operation for theresulting hand-held scanner. In another aspect, scanner attachment 55has a translation device which transmits the proper signal throughexpansion port 20. The scanner bar is on the underside, and one or morebatteries 59 are provided within the scanner attachment to provide theextra power needed for light generation.

In the scanner aspect of the invention, scanner attachments 55 ofdifferent width D2 may be provided for different purposes. The bar maybe no wider than the μPDA, or may be eight inches or more in width toscan the full width of U.S. letter size documents, or documents oninternational A4 paper. Unique control routines display operatinginformation on the μPDA's I/O area 16 for scanning, providing a userinterface for setup of various options, such as the width of the scannerbar, and providing identification for files created in the μPDA memoryas a result of scan passes. Scanned data stored in the μPDA memory maybe quickly transferred to the host via host interface 14 when the μPDAis docked. Unique routines may be provided to automate the process, sothe user does not have to search for files and initiate all of thetransfer processes.

Facsimile Option:

FIG. 15 is a plan view of a μPDA with a fax-modem module 89 attachedaccording to an embodiment of the present invention. A fax andtelecommunication capability is provided via conventional telephonelines to the μPDA by fax-modem 89 interfacing to expansion bus interface20. The fax-modem has internal circuitry for translating from the busstates of the expansion bus to the fax protocol, and a phone pluginterface 91. In another aspect, the μPDA can be docked in a host and beused in combination with fax-modem 89 to provide faxing and filetransfers of both host and SPDA data files. In this case, the fax-modemroutines are displayed on the host monitor.

Printer:

FIG. 16 is a plan view of a μPDA with a Centronics adapter interfaceaccording to an embodiment of the present invention. A printer connector93 engages expansion interface 20 by a connector 95 through a cable 97.Translation capability resides in circuitry in connector 93, which isconfigured physically as a Centronics connector to engage a standardport on a printer.

Barcode Reader and Data Acquisition Peripheral:

FIG. 17 is an isometric view of a μPDA 10 docked in a barcode reader andacquisition peripheral 100 according to an embodiment of the presentinvention. μPDA 10 is docked in docking bay 149. I/O interface 16displays information through opening 147 according to specialized dataacquisition applications. In this particular embodiment peripheral 100has an IR interface 94, a microphone 103, a scanner port 101 (notshown), battery pack 105, and a numeric keypad pad 96 implemented as atouch-sensitive array.

Application routines enable the data acquisition peripheral to operateas, for example, a mobile inventory management device. The user may scanbarcode labels with scanner 101 and enter information, such as counts,on keypad 96 or by voice input via microphone 103. Since applications ofperipheral 100 are very specialized, only a limited voice recognitionsystem is needed. The voice recognition system may prompt other commandroutines within the master applications as well.

As inventories are collected, the database may be displayed and alsomanipulated directly via I/O area 16 in open bay 147, or information maybe downloaded at a prompt to a nearby host via IR interface 94.

Alternatively to frequent data transmission, data may be stored or anauxiliary option memory location in peripheral 100.

In another aspect, the data acquisition peripheral may be interfaced tothe analog output of a monitoring device, such as a strip chartrecorder, and may digitize and store the incoming analog signals.

Solar Charger:

FIG. 18 is an isometric view of the side of a μPDA 10 opposite the I/Ointerface with a solar charger panel 98 according to an embodiment ofthe present invention. Panel 98 is positioned so that when μPDA 10 is instrong light, such as sunlight, the solar charger absorbs the solarenergy and converts it to electricity to recharger battery 15 inside theμPDA. Solar charger 98 may be permanently wired to the circuitry of theμPDA or attached by other means and connected to a dedicated electricalport or the expansion port. The solar charger is placed so that the μPDAcan be fully docked in a docking port with the panel in place. Inanother aspect, a detachable solar charger may be unplugged beforedocking the μPDA, and the detachable charger may then be of a largersurface area.

Games/Conference Center:

FIG. 19 is a largely diagrammatic representation of a Games Center unit33 according to an aspect of the invention for connecting several μPDAunits (37, 39, 41, and 43) together to allow competitive and interactivegames by more than one μPDA user. Games Center unit 33 is controlled byan 80486 CPU in this particular embodiment. μPDAs may be connected tothe central unit by cable connection via the expansion bus or the hostinterface of each μPDA, through a connector such as connector 35. Thedrawing shows four connectors, but there could be as few as two, and anyconvenient number greater than two.

As a further aspect of the present invention, the gaming center mayserve as a conference center where a number of μPDAs may exchangeinformation. In this way, for example through custom routines stored andexecutable in central unit 33, a manager may update a number ofsalespeople's μPDAs, including but not limited to merchandise databases,spreadsheets, price sheets, work assignments, customer profiles, addressbooks, telephone books, travel itineraries, and other related businessinformation while in conference.

Standard Keyboard:

FIG. 20 is an isometric view of a keyboard 151 connected by a cord andconnector 153 to a μPDA 10 via the expansion port 20. In this example,the keyboard is a mechanical keyboard having a full-size standard keyarray and an on-board controller and interface for communicating withthe μPDA. In other embodiments the keyboard may take many other forms,including a two-layer, flexible, roll-up keyboard as taught in U.S. Pat.No. 5,220,521.

In addition to keyboards, other input devices, such as writing tabletsand the like may also be interfaced to a μPDA via expansion port 20.

There are numerous additional ways to combine different embodiments ofthe μPDA for useful functions. For example, an IR-equipped μPDA attachedto scanner 55 may transfer large graphic files in near real time to ahost computer. If the files were of text, the host may further processthe files automatically through an optical character recognition (OCR)application and send the greatly reduced ASCI files back to the μPDA. Asdiscussed above, the μPDA family of devices establishes a protocol ofsoftware security and distribution as well as having the ability to bebus mastered by a host computer system for numerous applications.

Compressed BIOS:

As was described above in the Background” section, it would be desirableto be able to provide for a μPDA according to an embodiment of theinvention, from a ROM device of fixed storage capacity, more apparentlines of operable code than could ordinarily be provided from a ROM ofthat storage capacity. A compressed BIOS system is described below forjust this purpose, wherein a BIOS code routine is stored in a compressedportion of a ROM along with an uncompressed portion configured fortesting and initializing system memory on startup, and an uncompressedportion comprising a decompression utility configured to decompress thecompressed ROM portion.

In most BIOS systems for general-purpose computers, the BIOS is storedin an EPROM device. Upon power up the BIOS initializes the system, doingbasic tasks like accessing and checking the operation of on-boardrandom-access memory RAM, and typically, somewhere during theinitialization, at least a part of the BIOS code is copied (the BIOScopies itself) into a portion of the on-board RAM, although this step isnot required, as BIOS routines may be executed directly from the EPROMdevice.

The portion of RAM reserved for BIOS code in a computer is generallytermed “shadow” RAM. The term shadow RAM is also used in the industryfor a particular hardware type of memory device wherein each volatilememory cell has a connected non-volatile (EPROM-type) cell. These aremore properly called NVRAM devices, and are not what is meant in thisdescription by shadow RAM. Shadow RAM for the purpose of this disclosureis simply that portion of RAM reserved for a copy of part or all of theBIOS code.

In typical general-purpose computers, as soon as the system receivespower, the BIOS tests and initializes system RAM, then copies (shadows)itself from the EPROM to the RAM. The BIOS continues to run in RAM. Thepurpose of shadowing the BIOS in RAM is to give the CPU microprocessormuch faster access to the BIOS code than it would have by accessing theEPROM every time a BIOS code sequence is needed in continuingoperations.

The present invention comprises a means of compressing at least asignificant portion of the BIOS code, storing all of the BIOS code,including the compressed portion, in EPROM, and releasing the compressedcode on powerup, so all of the code is available for the computer touse. Also on powerup, the entire code is shadowed to RAM.

FIG. 21 is a diagrammatical representation of a compressed BIOS 1011according to the present invention. There are three different portionsof the code. Portion 1013 is code to perform all operations toinitialize and test the system RAM, and make it ready for use, and is afamiliar portion of conventional BIOS routines. This portion in someapplications needs to perform such functions as initializing and testinga memory controller and cache controllers and cache memory. Portion 1015is a decompression utility. Portion 1017 represents the balance of theBIOS code in compressed form. It will be apparent to those with skill inthe art that there are a number of compression schemes and relateddecompression routines that might be used.

FIG. 22 is a flow chart showing the operation of a computer from startupfollowing a BIOS routine according to the present invention. Frompowerup signal 1019, which is typically derived from the act of closingthe power on switch, operation goes to initialization operation 1021,during which system RAM is initialized. In operation 1021, the systemruns portion 1013 of FIG. 21.

Next, decompression utility 1015 (FIG. 21) is accessed and run inoperation 1023. The decompression utility processes the balance of theBIOS code (compressed), translates it into operable code, and shadows itto system RAM. Although such decompression utilities are available, thecode pointing to the compressed portion of the BIOS, and that whichcauses the decompressed code to be shadowed to RAM is not a part of aconventional decompression routine. These commands are added to the BIOSof the invention.

After the BIOS is shadowed operation continues (1025) from the BIOS insystem RAM. All remaining BIOS processes, including testing andinitializing the remainder of the computer subsystems are accomplishedin this operating portion.

One means by which the BIOS code may be compressed is based on the factthat BIOS routines, as is common in most other coded instruction sets,make use of frequently repeated code sequences. EPROMs used for BIOS aretypically byte-wide devices, that is, the device can store “words” of 8bits. A sixteen bit word requires, then, two lines of BIOS code.

In this embodiment frequently repeated code sequences are replaced inthe compressed portion of the BIOS with a token. The token in thisembodiment is a two byte code in which the first byte is a flag to thedecompression utility that the following byte is a pointer. The pointerportion is an entry to a table which is a part of the decompressionutility, and points to the specific, oft repeated, code sequence. In asimple such system, the table might have but one entry.

As an example, a frequently repeated code sequence in a BIOS might be a“call keyboard” sequence, which for the purpose of this example, may beeight lines of code. The token could be two lines of code in which thefirst line is the binary representation of the hexadecimal “FF”. In thisscheme, hex FF is a flag indicating that the following byte is apointer. The pointer, then, can be any value representable by a digitalbyte, that is any one of 256 values. The requirement is simply that thedecompression utility associate the pointer with the oft-repeated BIOScode sequence, and substitute that sequence in decompression and copyingthe BIOS code to RAM. In this scheme an oft-repeated code sequence needbe stored only once in the BIOS portion that is the decompressionutility.

FIG. 233 is a diagrammatical representation of the token decompressionscheme described above. After the BIOS according to the embodiment ofthe invention has initialized and tested the RAM, the decompressionutility is booted, and begins to read the compressed portion of the BIOSat Start 1027. At 1029 the decompression utility loads the first/nextbyte from the compressed portion of the EPROM BIOS. If this byte is hexFF (1031), it is recognized as a token, and control goes to 1033, wherethe system reads the byte following the token flag. This byte is alwaysa pointer to a code sequence.

At 1035 the system associates the pointer byte with the code sequencefrom a preprogrammed table and loads the associated sequence. At 1037the system copies the n lines of code pointed by the pointer byte to thenext n lines in shadow RAM. Control then goes to decision point 1039 anddetermines if the last loaded byte from compressed BIOS was the lastbyte. If so, control jumps to a predetermined entry point in thedecompressed shadow RAM, and the BIOS routine continues. If not, controlgoes back to 1029 and the next line of compressed code is loaded.

At decision point 1031, if the hex value is not FF, the code line loadedfrom compressed BIOS is copied directly into the next line in shadowBIOS.

It will be apparent to one with the skill in the art that there are manychanges that might be made and many other combinations that might bemade without departing from the spirit and scope of the invention. Thereare, for example, many ways to implement the support structure of theμPDA, and to interconnect the active components. One way has beenillustrated by FIG. 2 and described in accompanying text. There are manyalternatives to this preferred structure. There is also a broad range ofsizes and form factors that might be assumed by devices according to thepresent invention. The use of well-known PCMCIA form factors has beendisclosed, but other sizes and forms might also be provided inalternative embodiments. In larger embodiments, on-board peripherals maybe implemented.

In addition to these alternatives, there are various ways theconnectivity of a μPDA bus might be provided. The well-known PCMCIAstandard has been disclosed as a preference, but other connectivity mayalso be used in alternative embodiments. Memory types and sizes mayvary. Means of providing a security code may vary. The nature of theinternal bus may vary. There are indeed many variations that do notdepart from the spirit and scope of the invention.

In addition to the above, there are many non-volatile memories in whicha compressed BIOS may be stored, retrieved, and decompressed, andseveral of these have been listed above. The fact of compressing theroutines in the BIOS, including a loadable decompression routine,extends the capacity of any such finite non-volatile memory devices andhence the size of a BIOS routine that may be stored thereon.

It is also true that there are a truly large number of compressionschemes that might be employed to compress a portion of the BIOS. Theinvention should not be limited by the specific code relationshipdetermined to compress the BIOS code.

1. A digital assistant module that interfaces with a host computer,comprising: an on-board CPU that manages functions of the digitalassistant module; a memory connected to the CPU that stores data andexecutable routines; a user-operable input apparatus; a host interfaceadapted so as to provide communications between the digital assistantmodule and the host computer upon docking with the host computer, saidhost interface cooperating with a host interface of said host computerwhereby a user of said host computer may select pre-arranged softwaremixes for loading into said memory; and an enclosure that houses saidCPU, said memory, said input apparatus, and said host interface.
 2. Aninformation vending system, comprising: a data repository having storedthereon at least one of an information entity and a program entity; anda communication link by which a stored entity may be streamed from adata repository to a handheld appliance; wherein a user of the handheldappliance is enabled to connect the handheld appliance to the datarepository, to select for purchasing at least one information entity orprogram entity stored on the data repository, and to initiate paymentfor the selected entity, and wherein the selected entity is streamed tothe appliance in response to the payment.
 3. The vending system of claim2 wherein, after the handheld appliance is connected to the datarepository, information regarding one or more entities stored on thedata repository is displayed on a display of the handheld appliance. 4.The vending system of claim 2 wherein information relating to theselected entity is displayed on a display of the handheld appliance. 5.The vending system of claim 3 further comprising a vending systemdisplay, wherein the information regarding the one or more entitiesstored on the data repository is displayed on the vending systemdisplay.
 6. The vending system of claim 2 wherein the at least onestored entity is a program, and the vending system displays forpotential purchase only stored entities that are compatible with thehandheld appliance.
 7. The vending system of claim 2 wherein thehandheld appliance has a unique digital identifier that is transmittedto the vending system when the handheld appliance is connected to thedata repository.
 8. The vending system of claim 7 wherein, in responseto the transmission of the digital identifier, the vending system sortsentities to be displayed for potential purchase according to theidentifier.
 9. The vending system of claim 8 wherein the sorting causesonly information about entities that are compatible with the handheldappliance to be displayed.
 10. The vending system of claim 2 wherein theselected entity is s stored in a memory of the appliance.
 11. Thevending system of claim 2 further comprising a removable-media drive,wherein the selected entity is streamed to the removable media drive andstored thereon.
 12. The vending system of claim 2 wherein, prior toselection for purchase, the user may select a trial version of anentity, which is streamed free-of-charge or at a reduced price relativeto a regular purchase price associated with the entity.
 13. The vendingsystem of claim 11 wherein the user may command the vending system toaccess one or more selected programs or files from the handheldappliance to be stored on a media in the removable-media drive prior toselecting any entity for trial or purchase.
 14. The vending system ofclaim 7 wherein a program entity purchased from the vending system willoperate only on the handheld appliance or a selected subset of likeappliances.
 15. The vending system of claim 14 wherein the uniqueidentifier is used as a key or a portion of a key in scrambling orcustomizing a purchased entity.
 16. The vending system of claim 2wherein the information entity includes at least one of local, national,or world news, stock quotes, financial reports, weather, transportationschedules, road maps, and email or other messages for the user of thehandheld appliance.
 17. The vending system of claim 2 wherein theprogram entity includes at least one of a currency exchange applicationand a language translator.
 18. The vending system of claim 2 wherein thecommunication link comprises a wireless link.
 19. The vending system ofclaim 18 wherein the wireless link comprises at least one of an infrared(IR) link and a radio frequency (RF) link.
 20. The vending system ofclaim 2 wherein the communication link comprises a physical link.
 21. Ahandheld appliance, comprising: an interface for communicating with anexternal system; a means for browsing and selecting from a list ofdigital entities for sale, the list provided via the interface; a meansfor initiating payment for one or more entities selected; and a meansfor receiving and storing the one or more digital entities selected andfor which payment was initiated.
 22. The appliance of claim 21 whereinthe interface is a wireless interface.
 23. The appliance of claim 21wherein the interface is a physical interface.
 24. The appliance ofclaim 21 wherein the appliance comprises a display, and the list ofdigital entities is displayed on the display of the appliance.
 25. Theappliance of claim 21 further comprising a unique digital identifiertransmittable via the communication interface.
 26. The appliance ofclaim 25 wherein the appliance transmits the unique digital identifier,and the list as a result contains only entities for sale that aredigitally compatible with the appliance.
 27. The appliance of claim 25wherein the unique digital identifier is used as a key or a portion of akey in scrambling or customizing a purchased entity.
 28. A method forvending at least one of a digital information entity and a programentity, comprising steps of: (a) storing one or more entities to bevended in a data repository coupled to an intelligent vendor; (b)providing a communication interface for the intelligent vendor, withwhich the vendor may stream the one or more digital entities; (c)providing, via the communication interface, a list of one or moreentities for sale in response to a request from a potential purchaser;and (d) streaming, via the communication interface, one or more entitiesselected for purchase.
 29. The method of claim 26 further comprisingaccepting payment for a stored entity before streaming the one or moreselected entities.
 30. The method of claim 28 wherein, in step (c), therequest is accompanied by a digital identifier, and the identifier isused in populating the list of entities for sale.
 31. A machine-readablestorage medium containing a set of instructions for causing a handheldappliance to perform a method including; (a) establishing communicationwith a system for vending digital entities; (b) requesting a list of oneor more entities for sale; (c) selecting a selected entity from thelist; and (d) downloading the selected entity.
 32. The medium of claim31 wherein the method further comprises a step for initiating paymentfor the selected entity.
 33. The medium of claim 31 wherein the methodfurther comprises a step for transmitting a digital identifier uniquelyidentifying a particular class of appliances.
 34. The medium of claim 31further comprising displaying the list of entities for sale.
 35. Amachine-readable storage medium containing a set of instructions forcausing a vending system to perform a method including: (a) establishingcommunication with an appliance; (b) providing a list of one or moreentities for sale; (c) receiving from the appliance a selection of aselected entity; and (d) streaming the selected entity to the appliance.36. The medium of claim 35 wherein the method comprises an additionalstep for receiving a digital identifier, and sorting the list accordingto the identifier.
 37. The medium of claim 35 wherein the methodincludes negotiating payment for a selection before streaming theselection.